<template>
  <div class="pie-container">
    <div ref="pieChart" style="width: 100%; height: 100%;"></div>
    <p class="total-houses">总房屋数量: {{ totalHouses }}</p>
  </div>
</template>

<script>
import * as echarts from 'echarts';

export default {
  name: "RentalPieChart",
  data() {
    return {
      chartInstance: null,
      option: {
        title: {
          text: '2024年房屋租赁统计',
          left: 'center',  // 确保标题水平居中
          top: '5%',  // 调整标题的垂直位置
          textStyle: {
            color: '#333',  // 标题文字颜色，根据需要调整
            fontSize: 18,  // 标题文字大小，根据需要调整
            fontWeight: 'bold'  // 文字加粗
          }
        },
        tooltip: {
          trigger: 'item',
          formatter: '{a} <br/>{b}: {c} ({d}%)'
        },
        legend: {
          orient: 'vertical',
          right: '5%',  // 将图例放在右侧
          top: '20%',  // 调整图例的垂直位置
          itemGap: 20,  // 增加图例项目之间的间隔
          formatter: name => `{name|${name}}`,
          textStyle: {
            rich: {
              name: {
                width: 60
              }
            }
          }
        },
        series: [
          {
            name: '租赁情况',
            type: 'pie',
            radius: ['40%', '70%'], // 使用环形图
            center: ['50%', '60%'], // 调整饼图的中心位置
            data: [
              { value: 335, name: '已出租' },
              { value: 310, name: '未出租' }
            ],
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            },
            labelLine: {
              show: false  // 不显示标签连线
            },
            label: {
              show: false  // 不显示标签文本
            }
          }
        ]
      }
    };
  },
  computed: {
    totalHouses() {
      return this.option.series[0].data.reduce((acc, item) => acc + item.value, 0);
    }
  },
  mounted() {
    this.initChart();
  },
  methods: {
    initChart() {
      this.chartInstance = echarts.init(this.$refs.pieChart, null, {renderer: 'svg'});
      this.chartInstance.setOption(this.option);
    }
  },
  beforeDestroy() {
    if (this.chartInstance) {
      this.chartInstance.dispose();
    }
  }
};
</script>

<style scoped>
.pie-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 400px; /* 高度增加以防止重叠 */
  width: 100%;
  padding: 0px; /* 增加内边距以美化布局 */
}

.total-houses {
  font-size: 16px;
  color: #0a0909;
  margin-top: 10px; /* 增加与图表的间距 */

}
</style>
